<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>basic_datagram_socket::async_connect</title>
<link rel="stylesheet" href="../../../../../doc/src/boostbook.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
<link rel="home" href="../../../boost_asio.html" title="Boost.Asio">
<link rel="up" href="../basic_datagram_socket.html" title="basic_datagram_socket">
<link rel="prev" href="assign/overload2.html" title="basic_datagram_socket::assign (2 of 2 overloads)">
<link rel="next" href="async_receive.html" title="basic_datagram_socket::async_receive">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table cellpadding="2" width="100%"><tr>
<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../boost.png"></td>
<td align="center"><a href="../../../../../index.html">Home</a></td>
<td align="center"><a href="../../../../../libs/libraries.htm">Libraries</a></td>
<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
<td align="center"><a href="../../../../../more/index.htm">More</a></td>
</tr></table>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="assign/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_datagram_socket.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="async_receive.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
<div class="section">
<div class="titlepage"><div><div><h4 class="title">
<a name="boost_asio.reference.basic_datagram_socket.async_connect"></a><a class="link" href="async_connect.html" title="basic_datagram_socket::async_connect">basic_datagram_socket::async_connect</a>
</h4></div></div></div>
<p>
          <span class="emphasis"><em>Inherited from basic_socket.</em></span>
        </p>
<p>
          <a class="indexterm" name="boost_asio.indexterm.basic_datagram_socket.async_connect"></a> 
Start
          an asynchronous connect.
        </p>
<pre class="programlisting"><span class="keyword">template</span><span class="special">&lt;</span>
    <span class="keyword">typename</span> <a class="link" href="../ConnectToken.html" title="Connect token requirements">ConnectToken</a> <span class="special">=</span> <span class="identifier">default_completion_token_t</span><span class="special">&lt;</span><span class="identifier">executor_type</span><span class="special">&gt;&gt;</span>
<a class="link" href="../asynchronous_operations.html#boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type"><span class="emphasis"><em>DEDUCED</em></span></a> <span class="identifier">async_connect</span><span class="special">(</span>
    <span class="keyword">const</span> <span class="identifier">endpoint_type</span> <span class="special">&amp;</span> <span class="identifier">peer_endpoint</span><span class="special">,</span>
    <span class="identifier">ConnectToken</span> <span class="special">&amp;&amp;</span> <span class="identifier">token</span> <span class="special">=</span> <span class="identifier">default_completion_token_t</span><span class="special">&lt;</span> <span class="identifier">executor_type</span> <span class="special">&gt;());</span>
</pre>
<p>
          This function is used to asynchronously connect a socket to the specified
          remote endpoint. It is an initiating function for an <a class="link" href="../../overview/model/async_ops.html" title="Asynchronous Operations">asynchronous
          operation</a>, and always returns immediately.
        </p>
<p>
          The socket is automatically opened if it is not already open. If the connect
          fails, and the socket was automatically opened, the socket is not returned
          to the closed state.
        </p>
<h6>
<a name="boost_asio.reference.basic_datagram_socket.async_connect.h0"></a>
          <span class="phrase"><a name="boost_asio.reference.basic_datagram_socket.async_connect.parameters"></a></span><a class="link" href="async_connect.html#boost_asio.reference.basic_datagram_socket.async_connect.parameters">Parameters</a>
        </h6>
<div class="variablelist">
<p class="title"><b></b></p>
<dl class="variablelist">
<dt><span class="term">peer_endpoint</span></dt>
<dd><p>
                The remote endpoint to which the socket will be connected. Copies
                will be made of the endpoint object as required.
              </p></dd>
<dt><span class="term">token</span></dt>
<dd>
<p>
                The <a class="link" href="../../overview/model/completion_tokens.html" title="Completion Tokens">completion
                token</a> that will be used to produce a completion handler, which
                will be called when the connect completes. Potential completion tokens
                include <a class="link" href="../use_future.html" title="use_future"><code class="computeroutput"><span class="identifier">use_future</span></code></a>, <a class="link" href="../use_awaitable.html" title="use_awaitable"><code class="computeroutput"><span class="identifier">use_awaitable</span></code></a>, <a class="link" href="../yield_context.html" title="yield_context"><code class="computeroutput"><span class="identifier">yield_context</span></code></a>, or a function
                object with the correct completion signature. The function signature
                of the completion handler must be:
              </p>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">handler</span><span class="special">(</span>
  <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span> <span class="comment">// Result of operation.</span>
<span class="special">);</span>
</pre>
<p>
                Regardless of whether the asynchronous operation completes immediately
                or not, the completion handler will not be invoked from within this
                function. On immediate completion, invocation of the handler will
                be performed in a manner equivalent to using <a class="link" href="../post.html" title="post"><code class="computeroutput"><span class="identifier">post</span></code></a>.
              </p>
</dd>
</dl>
</div>
<h6>
<a name="boost_asio.reference.basic_datagram_socket.async_connect.h1"></a>
          <span class="phrase"><a name="boost_asio.reference.basic_datagram_socket.async_connect.completion_signature"></a></span><a class="link" href="async_connect.html#boost_asio.reference.basic_datagram_socket.async_connect.completion_signature">Completion
          Signature</a>
        </h6>
<pre class="programlisting"><span class="keyword">void</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">)</span>
</pre>
<h6>
<a name="boost_asio.reference.basic_datagram_socket.async_connect.h2"></a>
          <span class="phrase"><a name="boost_asio.reference.basic_datagram_socket.async_connect.example"></a></span><a class="link" href="async_connect.html#boost_asio.reference.basic_datagram_socket.async_connect.example">Example</a>
        </h6>
<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">connect_handler</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">error</span><span class="special">)</span>
<span class="special">{</span>
  <span class="keyword">if</span> <span class="special">(!</span><span class="identifier">error</span><span class="special">)</span>
  <span class="special">{</span>
    <span class="comment">// Connect succeeded.</span>
  <span class="special">}</span>
<span class="special">}</span>

<span class="special">...</span>

<span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">socket</span> <span class="identifier">socket</span><span class="special">(</span><span class="identifier">my_context</span><span class="special">);</span>
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">ip</span><span class="special">::</span><span class="identifier">tcp</span><span class="special">::</span><span class="identifier">endpoint</span> <span class="identifier">endpoint</span><span class="special">(</span>
    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address</span><span class="special">::</span><span class="identifier">from_string</span><span class="special">(</span><span class="string">"1.2.3.4"</span><span class="special">),</span> <span class="number">12345</span><span class="special">);</span>
<span class="identifier">socket</span><span class="special">.</span><span class="identifier">async_connect</span><span class="special">(</span><span class="identifier">endpoint</span><span class="special">,</span> <span class="identifier">connect_handler</span><span class="special">);</span>
</pre>
<h6>
<a name="boost_asio.reference.basic_datagram_socket.async_connect.h3"></a>
          <span class="phrase"><a name="boost_asio.reference.basic_datagram_socket.async_connect.per_operation_cancellation"></a></span><a class="link" href="async_connect.html#boost_asio.reference.basic_datagram_socket.async_connect.per_operation_cancellation">Per-Operation
          Cancellation</a>
        </h6>
<p>
          On POSIX or Windows operating systems, this asynchronous operation supports
          cancellation for the following <a class="link" href="../cancellation_type.html" title="cancellation_type"><code class="computeroutput"><span class="identifier">cancellation_type</span></code></a> values:
        </p>
<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
<li class="listitem">
              <code class="computeroutput"><span class="identifier">cancellation_type</span><span class="special">::</span><span class="identifier">terminal</span></code>
            </li>
<li class="listitem">
              <code class="computeroutput"><span class="identifier">cancellation_type</span><span class="special">::</span><span class="identifier">partial</span></code>
            </li>
<li class="listitem">
              <code class="computeroutput"><span class="identifier">cancellation_type</span><span class="special">::</span><span class="identifier">total</span></code>
            </li>
</ul></div>
</div>
<div class="copyright-footer">Copyright © 2003-2024 Christopher M. Kohlhoff<p>
        Distributed under the Boost Software License, Version 1.0. (See accompanying
        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
      </p>
</div>
<hr>
<div class="spirit-nav">
<a accesskey="p" href="assign/overload2.html"><img src="../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_datagram_socket.html"><img src="../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../boost_asio.html"><img src="../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="async_receive.html"><img src="../../../../../doc/src/images/next.png" alt="Next"></a>
</div>
</body>
</html>
